public class test07 {
    class Solution {
        public int integerBreak(int n) {
            //注意！没说拆成几个！
            //最少是两个
            int[] dp = new int[n+1];
            //dp[1]只能拆分成1、0,0不符合题目正整数的要求
            dp[2] = 1;

            for(int i = 3;i<n+1;i++){
                for(int j = 1;j<=i;j++){
                    //1、不拆更大（局部的情况，不要想象成单独一个数）
                    //2、拆成两块
                    //3、拆成n块
                    dp[i] = Math.max(dp[i],Math.max(dp[i-j]*j,j*(i-j)));
                }
            }
            return dp[n];
        }
    }
}
